Una parte del proyecto en el que estoy trabajando requiere una interfaz en la que un usuario dibuja una curva, y quiero generar una ecuación matemática aproximada de esa curva para realizar una variedad de pruebas en ella.
He pensado en 2 enfoques hasta ahora y me preguntaba si son factibles o si existe una mejor manera de abordar el problema que me falta / truco matemático genial que me permite lograrlo.
Enfoque 1:
En lugar de hacer que los usuarios dibujen una curva, déles la opción de insertar puntos de curva Bezier y ajustarlos para hacer su curva. Dado que las curvas de Bézier tienen una ecuación paramétrica que las describe, pude obtener directamente la ecuación exacta.
Contras: -Es más engorroso para los usuarios modificar y hacer un bezier que simplemente dibujar una curva
Enfoque 2:
Obtenga la curva dibujada y extraiga 'n' puntos. (No creo que esto debería ser difícil de hacer). De alguna manera pasar de estos 'n' puntos a una ecuación de una curva que pasa por ellos. Naturalmente, 'n' sería bastante grande, digamos 100. ¿Hay alguna manera clara de obtener una ecuación para la "función continua más simple" que pasa por 'n' puntos?
El enfoque 1 (insertar puntos Bezier y ajustar puntos de control) se utiliza en muchos programas de dibujo vectorial, especialmente en aplicaciones de tipo CAD donde la precisión es importante y los puntos se disponen en una cuadrícula, etc. Es una forma más lenta de dibujar. , pero se usa en estas situaciones, porque es realmente difícil dibujar una curva a mano alzada con cuidado .
El enfoque 2, simplemente dibuje y obtenga una aproximación suave, también es bastante popular cuando no se requiere precisión. No estoy seguro de qué métodos se usan generalmente para esto, o incluso si hay un "generalmente", pero no creo que sea particularmente difícil hacer un buen trabajo. Me gustaría: